import { defineNuxtConfig } from "nuxt/config";

export default defineNuxtConfig({
    app: {
        rootId: "tubusi", // 自定义根元素id
        buildAssetsDir: "_assets", // 构建页面静态资源存放目录，必须下划线开头
    },

    // 开启nuxt调试功能,开启后可在项目浏览器下方看到nuxt调试面版
    devtools: { enabled: false },

    // 引入全局插件仅支持nuxt模块插件，非nuxt插件全局引入请在plugins中使用
    modules: ["@element-plus/nuxt", "@pinia/nuxt"],

    // 使用 ssr 方式渲染页面
    ssr: true,

    // 引入全局插件
    plugins: [{ src: "~/plugins/elementPlusIcons.js", ssr: "true" }],
    // 配置.env识别。配置后页面中使用 useRuntimeConfig() 获取内容
    runtimeConfig: {
        // 非公开配置，仅在服务器端可用，例如密钥
        apiKey: process.env.VUE_APP_AI_DOMAIN,
        // 公开配置，在客户端和服务器端都可用
        public: {
            env: true,
            mode: process.env.VUE_ONLINE_URL,
        },
    },
    // composables 目录扫描配置，用于扫描顶层模块和深层嵌套模块
    dirs: [
        "composables", // 扫描顶级模块
        "composables/**", // ... 或扫描给定目录中的所有模块
    ],

    // 开发环境nuxt项目启动默认端口, 生产环境在package.json中配置start命令
    devServer: {
        port: 8090, // 将端口修改为 8080
        host: "192.168.10.17",
    },

    // Nuxt 3 核心的服务器引擎，可以配置缓存策略、路由规则等
    nitro: {
        //开发代理配置
        devProxy: {
            "/v1/api": {
                // target: 'http://192.168.10.19:9000', // dev
                // target: 'http://www.shuidoubufu.com', // test
                target: "http://api.shuidoubufu.com" + "/v1/api", // test
                changeOrigin: true,
            },
        },
        // compressPublicAssets: true,
        // plugins: ["~/mixin/nitro-hooks.ts"],
    },

    // 引入全局样式文件
    css: ["@/assets/less/common.less"],

    // css单独文件引用，不使用内联
    experimental: {
        inlineSSRStyles: false,
    },

    compatibilityDate: "2025-04-19",
});
